// 内置类型
// Partial, Required, Readonly 修饰类型的
// Pick, Omit 处理数据
// Exclude Extract 处理结合类型的
// Paramters ReturnValue infer
// 字符串类型 模板字符串 `${}` + infer

// 1.部分属性可选
interface Person {
    name: string;
    age: number;
    address: string;
}

type Ht<T extends object, K extends keyof T> = Pick<T, K>;
type e1 = Ht<Person, 'age'|'address'>;

type PartialPropsOptional<T extends object, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;

type computed<T> = {
    [K in keyof T]: T[K];
};

type p1 = computed<PartialPropsOptional<Person, 'age'|'address'>>

export {}
